package com.rk.pethome.user.Service;


import com.rk.pethome.basic.service.IBaseService;
import com.rk.pethome.basic.util.AjaxResult;
import com.rk.pethome.user.Vo.UserDot;
import com.rk.pethome.user.domain.User;

/**
 * 用户service
 */
public interface IUserService extends IBaseService<User> {


    /**
     * 通过邮箱进行注册
     * @param userDot
     * @return
     */
    AjaxResult registerEmail(UserDot userDot);


    /**
     * 校验邮箱是否存在
     * @param email
     */
    AjaxResult checkEmail(String email);

    /**
     * 校验手机号码是否存在
     * @param phone
     */
    void checkPhone(String phone);

    /**
     * 发送验证码
     * @param phone
     */
    void sendMobileCodebyPhone(String phone);

    /**
     * 注册用户
     * @param userDot
     * @return
     */
    AjaxResult registerPhone(UserDot userDot);

    /**
     * 校验输入是否正确
     * @param userDot
     * @return
     */
    AjaxResult verifyPhone(UserDot userDot);


    /**
     * 用户登录
     * @param user
     * @return
     */
    AjaxResult login(User user);

    /**
     * 用户激活
     * @param email  邮箱
     * @param code   激活码
     * @return
     */
    AjaxResult activation(String email,String code);


    /**
     * 通过用户名 邮箱 手机号查找用户
     * @param username
     */
    User loadByUsername(String username);
}
